div.output_wrapper {
    /* this position must be relative to enable descendents to be absolute within it */
    position: relative;
    .vbox();
    // avoid scrolled output overlaying input in some strange circumstances
    z-index: 1;
}

/* class for the output area when it should be height-limited */
div.output_scroll {
    /* ideally, this would be max-height, but FF barfs all over that */
    height: 24em;
    /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
    width: 100%;

    overflow: auto;
    .corner-all;
    .box-shadow(inset 0 2px 8px rgba(0, 0, 0, .8));
    display: block;
}

/* output div while it is collapsed */
div.output_collapsed {
    margin: 0px;
    padding: 0px;
    .vbox();
}

div.out_prompt_overlay {
    height: 100%;
    padding: 0px @code_padding;
    position: absolute;
    .corner-all;
}

div.out_prompt_overlay:hover {
    /* use inner shadow to get border that is computed the same on WebKit/FF */
    .box-shadow(inset 0 0 1px #000);
    background: rgba(240, 240, 240, 0.5);
}

div.output_prompt {
    color: @output_prompt_color;
}

/* This class is the outer container of all output sections. */
div.output_area {
    padding: 0px;
    page-break-inside: avoid;
    .hbox();

    .MathJax_Display {
        // Inside a CodeCell, elements are left justified
        text-align: left !important;
    }

    .rendered_html {
        // Inside a CodeCell, elements are left justified
        table {
            margin-left: 0;
            margin-right: 0;
        }
    
        img {
            margin-left: 0;
            margin-right: 0;
        }
    }
    
    img, svg {
        max-width: 100%;
        height: auto;
        &.unconfined {
            max-width: none;
        }
    }

    .mglyph>img {
        max-width: none;
    }
}

/* This is needed to protect the pre formating from global settings such
   as that of bootstrap */
.output {
    .vbox();
}

@media (max-width: @screen-xs-min) {
    // move prompts above output on small screens
    div.output_area {
        .vbox();
    }
}

div.output_area pre {
    margin: 0;
    padding: 1px 0 1px 0;
    border: 0;
    vertical-align: baseline;
    color: @output_pre_color;
    background-color: transparent;
    .border-radius(0);
}

/* This class is for the output subarea inside the output_area and after
   the prompt div. */
div.output_subarea {
    // Don't let contents overflow page area.
    overflow-x: auto;
    padding: @code_padding;
    .box-flex1();
    // appears to be needed for max-width in children to mean anything on Firefox:
    max-width: calc(~"100% - 14ex");
}

div.output_scroll div.output_subarea {
    // if the output area is scrolling, we don't need scrollbars on the subarea
    overflow-x: visible;
}

/* The rest of the output_* classes are for special styling of the different
   output types */

/* all text output has this class: */
div.output_text {
    text-align: left;
    color: @text-color;
    /* This has to match that of the the CodeMirror class line-height below */  
    line-height: @code_line_height;
}

/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
div.output_stream {
}

div.output_stdout {
}

div.output_stderr {
    background: #fdd; /* very light red background for stderr */
}

div.output_latex {
    text-align: left;
}

div.output_html {
}

div.output_png {
}

div.output_jpeg {
}

/* Empty output_javascript divs should have no height */
div.output_javascript:empty {
    padding: 0;
}

.js-error {
    color: darkred;
}

/* raw_input styles */

div.raw_input_container {
    line-height: @code_line_height;
    // for some reason, em padding doesn't compute the same for raw_input
    // that is not the first input, but px does
    padding-top: 5px;
}

pre.raw_input_prompt {
    /* nothing needed here. */
}

input.raw_input {
    font-family: @font-family-monospace;
    font-size: inherit;
    color: inherit;
    width: auto;
    /* make sure input baseline aligns with prompt */
    vertical-align: baseline;
    /* padding + margin = 0.5em between prompt and cursor */
    padding: 0em 0.25em;
    margin: 0em 0.25em;
}

input.raw_input:focus {
    box-shadow: none;
}

p.p-space {
    margin-bottom: 10px;
}

div.output_unrecognized {
  padding: 5px;
  font-weight: bold;
  color: red;
  // remove decoration from link
  a {
      color: inherit;
      text-decoration: none;

      &:hover {
          color: inherit;
          text-decoration: none;
      }
  }
}

div.output_text[dir="rtl"] {
  text-align: right;
}
